Date: Thu, 07 Nov 1996 19:24:22 GMT
Server: NCSA/1.5
Content-type: text/html
Last-modified: Thu, 31 Oct 1996 21:31:37 GMT
Content-length: 8011

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">

<html>

<head>
<title>CS838 Java!</title>
<!-- Changed by: James Larus, 18-Sep-1996 -->
<meta name="GENERATOR" content="Microsoft FrontPage 1.1">
</head>

<body>
<h1 align=center>CS838: Java!</h1>
<p align=center><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><a href="http://www.cs.wisc.edu/~cs838-1">http://www.cs.wisc.edu/~cs838-1</a></p>
<h2 align=left>Instructors</h2>
<div align=center><center>
<table width=85%>
<tr><td width=33%><strong>Instructor</strong></td><td width=33%><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><a href="http://www.cs.wisc.edu/~markhill"><b>Mark Hill</b></a></td><td width=34%><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><a href="http://www.cs.wisc.edu/~larus"><b>James Larus</b></a></td></tr>
<tr><td width=33%><strong>Office</strong></td><td width=33%>6373 CS</td><td width=34%>5393 CS</td></tr>
<tr><td width=33%><strong>Office Hours</strong></td><td width=33%>Monday 2-3 pm, Wed 11-12 am</td><td width=34%>Tuesday 3-4 pm , Friday 11-12 am</td></tr>
<tr><td width=33%><strong>Phone</strong></td><td width=33%>262-2196</td><td width=34%>262-9519</td></tr>
<tr><td width=33%><strong>Email</strong></td><td width=33%><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><a href="http://www.cs.wisc.edu/cgi-bin/finger/m?markhill">markhill@cs.wisc.edu</a></td><td width=34%><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><a href="http://www.cs.wisc.edu/cgi-bin/finger/m?larus">larus@cs.wisc.edu </a></td></tr>
<tr><td width=33%><strong>Home Page</strong></td><td width=33%><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><a href="http://www.cs.wisc.edu/~markhill">www.cs.wisc.edu/~markhil</a>l</td><td width=34%><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><a href="http://www.cs.wisc.edu/~larus/larus.html">www.cs.wisc.edu/~larus</a></td></tr>
</table>
</center></div>
<h2>Java</h2>
<p>Java is an curious mixture of extreme hype and sound technology. This fall, CS838 is a graduate seminar that will examine Java, including the Java 
programming language, network security, design of distributed applets, Java virtual machines, and Java implementations (compilers, interpreters, and special 
hardware). Other Java-related topics are both welcome and encouraged.</p>
<p>This course will be taugh as a research seminar. First, the professors are not Java experts, but expect to learning along with the students. What you get out of 
this course will be experience in studying and developing new ideas, interactioning with colleagues, and new insight into Java. We only plan to lecture for a 
few weeks to present an overview of Java. Then students will work on two-month-long group projects. Students will be evaluated on the oral and written 
presentation of their project. This offering of CS 838 is NOT a core CS course.</p>
<h2>Background Material</h2>
<p>There is no text for this course, although there are countless Java books in bookstores. Most of these books were written very quickly and are very 
superficial. The Addison-Wesley series is the &quot;official&quot; Sun reference books on Java and are much better than the average (but see below; many of them are 
on-line).</p>
<h3>Implementation Reader</h3>
<p>A <!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><a href="http://www.cs.wisc.edu/~cs838-1/implmtn_reader.html">collection of papers</a> on Java implementation is available at DoIT.</p>
<h3>On-Line Documentation</h3>
<p>Sun maintains a web site that contains considerable Java documentation. Its URL is <!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><a href="http://java.sun.com">http://java.sun.com</a>. This site contains considerable Java documentation, 
including:</p>
<ul>
<li><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><a href="http://java.sun.com:80/doc/language_specification.html">The Java Language Specification.</a></li>
<li><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><a href="http://java.sun.com:80/doc/language_vm_specification.html">The Virtual Machine Specification</a></li>
<li><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><a href="http://java.sun.com:80/doc/api_documentation.html">The Java API (Application Programmer Interface, i.e., libraries) Specification</a></li>
<li><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><a href="http://java.sun.com:80/doc/tutorial.html">Java Language Tutorial</a></li>
</ul>
<p>
Security-related papers:
<ul>
<li><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><a href="http://www.cs.princeton.edu/sip/pub/secure96.html">
Dean, Felten, Wallach, "Java Security: From HotJava to Netscape and Beyond.</a></li>
<li><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><a href="http://java.sun.com:80/sfaq/verifier.html">
Frank Yellin, "Low Level Security in Java.</a></li>
<li><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><a href="http://java.sun.com:80/sfaq/index.html">
JavaSoft, Frequently Asked Questions - Applet Security.</a></li>
</ul>
<p>The web also can provide a Java Development Kit for writing and running Java applications on a PC. This kit is already installed for the SPARCstations in 
the department (/s/java). The department also has the source to the JDK. You can also run Java applets in recent versions of Netscape and Microsoft's 
Internet Explorer.</p>
<p>Sample Java applets are available from many places. Sun has a collection at: <!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><a href="http://java.sun.com/java.sun.com/applets/index.html">http://java.sun.com/java.sun.com/applets/index.html</a> (that's not a typo!). The 
largest collection of Java programs and applets appears to be at <!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><a href="http://www.gamelan.com">http://www.gamelan.com</a>.</p>
<h3>Lecture Slides</h3>
<p>Postscript of our lecture transparancies are available:</p>
<ul>
<li><!WA18><!WA18><!WA18><!WA18><!WA18><!WA18><!WA18><!WA18><!WA18><!WA18><!WA18><!WA18><!WA18><a href="http://www.cs.wisc.edu/~cs838-1/www-overview2up.fm.ps">Java Big Picture</a></li>
<li><!WA19><!WA19><!WA19><!WA19><!WA19><!WA19><!WA19><!WA19><!WA19><!WA19><!WA19><!WA19><!WA19><a href="http://www.cs.wisc.edu/~cs838-1/java-lang.fm.ps">Java Language Overview</a></li>
<li><!WA20><!WA20><!WA20><!WA20><!WA20><!WA20><!WA20><!WA20><!WA20><!WA20><!WA20><!WA20><!WA20><a href="http://www.cs.wisc.edu/~cs838-1/java-vm.fm.ps">Java Virtual Machine</a></li>
<li><!WA21><!WA21><!WA21><!WA21><!WA21><!WA21><!WA21><!WA21><!WA21><!WA21><!WA21><!WA21><!WA21><a href="http://www.cs.wisc.edu/~cs838-1/java-implementation2up.fm.ps">Implementing the Java VM in Hardware?</a></li>
<li><!WA22><!WA22><!WA22><!WA22><!WA22><!WA22><!WA22><!WA22><!WA22><!WA22><!WA22><!WA22><!WA22><a href="http://www.cs.wisc.edu/~cs838-1/java-security.fm.ps">Java Security</a></li>
</ul>
<h2>Project</h2>
<p><!WA23><!WA23><!WA23><!WA23><!WA23><!WA23><!WA23><!WA23><!WA23><!WA23><!WA23><!WA23><!WA23><a href="http://www.cs.wisc.edu/~cs838-1/project.html">Click here for project assignment</a></li></p>
<p>Below is a list of possible project topics. It is intended as a starting point, not an enumeration.</p>
<ul>
<li><pre>A Comparison of Java with C++, Smalltalk, Scheme, and Simula </pre>
</li>
<li><pre>An Implementation of a Java Interpreter that Caches Recently-Used Basic Blocks </pre>
</li>
<li><pre>On-the-fly Compilation of Java Applets on Small-Memory Embedded Machines </pre>
</li>
<li><pre>The Memory System Behavior of Compiled vs. Interpreted Java Applets </pre>
</li>
<li><pre>An Evaluation of Alternative Implementations of Java Monitors </pre>
</li>
<li><pre>A Comparison of the Java Virtual Machine with Xerox Mesa Bytecodes </pre>
</li>
<li><pre>The Microarchitecture of a Processor that Directly Executes Java Bytecodes </pre>
</li>
<li><pre>Optimizing Java Compiler </pre>
</li>
<li><pre>Rationalizing the Java Library </pre>
</li>
<li><pre>Performance Evaluation Tools and Results for Java Programs </pre>
</li>
<li><pre>Evaluation of Java Security </pre>
</li>
<li><pre>Investigate compiling other languages to the Java VM.  (Subset of C -&gt; Java VM would be very interesting.) </pre>
</li>
<li><pre>Investigate was of formalizing the security requirements of a language and system and ways of automatically generating/verifying VM implementations. </pre>
</li>
<li><pre>Any security-related topic.... </pre>
</li>
<li><pre>Investigate the cost of making the primitive types (int, float, bool, etc) objects and eliminating the dual type systems.  In particular, is Java's
static typing sufficient to alleviate the overheads? </pre>
</li>
<li><pre>Java EEL </pre>
</li>
<li><pre>Dynamic compilation.... </pre>
</li>
<li><pre>Can the language-mandated tests (array bounds, null pointer, etc) be scheduled in unused cycles on superscalar processors, so that Java runs as
fast as an unsafe language like C++? </pre>
</li>
</ul>
<h3>Project Meetings</h3>
<table border=2>
<tr>
<td align=left valign=top width=100><b>Date</b></td>
<td align=left valign=top width=100><b>Time</b></td>
<td align=left valign=top width=300><b>Group</b></td>
</tr>
<tr>
<td>Tue Nov 12</td><td>1:00</td><td>__</td>
</tr>
<tr>
<td>Tue Nov 12</td><td>1:15</td><td>__</td>
</tr>
<tr>
<td>Tue Nov 12</td><td>1:30</td><td>__break if possible</td>
</tr>
<tr>
<td>Tue Nov 12</td><td>1:45</td><td>__</td>
</tr>
<tr>
<td>Tue Nov 12</td><td>2:00</td><td>__</td>
</tr>
<tr>
<td></td><td>
</tr>
<tr>
<td>Thu Nov 14</td><td>1:00</td><td>__</td>
</tr>
<tr>
<td>Thu Nov 14</td><td>1:15</td><td>__</td>
</tr>
<tr>
<td>Thu Nov 14</td><td>1:30</td><td>__break if possible</td>
</tr>
<tr>
<td>Thu Nov 14</td><td>1:45</td><td>__</td>
</tr>
<tr>
<td>Thu Nov 14</td><td>2:00</td><td>__</td>
</tr>
</table>
</body>
</html>
